package com.ym.medical.domain.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ym.medical.enums.CounsellingRoomStateEnum;
import com.ym.medical.enums.DoctorJobTitle;
import com.ym.medical.enums.HospitalLevelEnum;
import com.ym.medical.enums.InquiryOrderIoTypeEnum;
import com.ym.medical.enums.InquiryOrderSourceEnum;
import com.ym.medical.enums.InquiryOrderStateEnum;
import com.ym.medical.enums.PatientDetailRelationEnum;
import com.ym.medical.enums.PlaformSourceEnum;
import com.ym.medical.enums.UserSexEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 小程序首页问诊消息记录
 *
 * @author: 李涛
 * @version: 2019年04月25日 10:53
 */

@Data
@ApiModel("问诊消息记录")
public class CounsellingRoomRecordVO {

	/**
	 * 订单主键
	 */
	@ApiModelProperty("订单主键")
	private Long id;


	/**
	 * 订单编号
	 */
	@ApiModelProperty("订单编号")
	private String ioNum;

	/**
	 * 评价id
	 */
	@ApiModelProperty("评价id")
	private Long crId;

	/**
	 * 评价id
	 */
	@ApiModelProperty("送心意ID")
	private Long mindId;

	/**
	 * 用户ID
	 */
	@ApiModelProperty("用户ID")
	private Long userId;

	/**
	 * 患者主键Id
	 */
	@ApiModelProperty("患者ID")
	private Long patientId;

	/**
	 * 患者名称
	 */
	@ApiModelProperty("患者名称")
	private String patientName;

	/**
	 * 患者性别
	 */
	@ApiModelProperty("患者性别")
	@JsonSerialize(converter = UserSexEnum.Covert.class)
	private String patientSex;

	/**
	 * 患者性别
	 */
	@ApiModelProperty("患者性别,key=UserSexEnum")
	private String patientSexName;


	/**
	 * 患者生日
	 */
	@ApiModelProperty("患者生日")
	private String patientBirthday;

	/**
	 * 患者体重
	 */
	@ApiModelProperty("患者体重")
	private String weight;

	/**
	 * 患者头像
	 */
	@ApiModelProperty("患者头像")
	private String patientHead;

	/**
	 * 医生ID
	 */
	@ApiModelProperty("抢单医生ID")
	private Long grapDoctorId;

	/**
	 * 医生ID
	 */
	@ApiModelProperty("医生ID")
	private Long doctorId;

	/**
	 * 医生名字
	 */
	@ApiModelProperty("医生名字")
	private String doctorName;

	/**
	 * 科室类型
	 */
	@ApiModelProperty("科室类型")
	private String doctorType;

	/**
	 * 医生头像
	 */
	@ApiModelProperty("医生头像")
	private String doctorHead;

	/**
	 * 订单状态
	 */
	@ApiModelProperty("订单状态,key=InquiryOrderStateEnum")
	@JsonSerialize(converter = InquiryOrderStateEnum.Covert.class)
	private String orderState;

	/**
	 * 订单类型
	 */
	@ApiModelProperty("订单类型,key=InquiryOrderIoTypeEnum")
	@JsonSerialize(converter = InquiryOrderIoTypeEnum.Covert.class)
	private String ioType;

	/**
	 * 聊天室主键ID
	 */
	@ApiModelProperty("聊天室主键ID")
	private String roomMainId;

	/**
	 * 聊天室状态
	 */
	@ApiModelProperty("聊天室状态,key=CounsellingRoomStateEnum")
	@JsonSerialize(converter = CounsellingRoomStateEnum.Covert.class)
	private String roomState;

	/**
	 * 内容
	 */
	@ApiModelProperty("聊天内容")
	private String content;

	/**
	 * 最后聊天消息时间
	 */
	@ApiModelProperty("最后聊天消息时间")
	private Date time;

	/**
	 * 最后聊天消息时间
	 */
	@ApiModelProperty("医生回复时间")
	private Date rspTime;

	/**
	 * 最后聊天消息时间
	 */
	@ApiModelProperty("最新聊天消息")
	private String rspMsg;

	/**
	 * 患者未读消息数量
	 */
	@ApiModelProperty("患者未读消息数量")
	private Integer patientUnread;

	/**
	 * 医生未读消息数量
	 */
	@ApiModelProperty("医生未读消息数量")
	private Integer doctorUnread;

	/**
	 * 患者与本人关系
	 */
	@ApiModelProperty("患者与本人关系")
	@JsonSerialize(converter = PatientDetailRelationEnum.Covert.class)
	private String relation;

	/**
	 * 问答工作室ID
	 */
	@ApiModelProperty("问答工作室ID")
	private String workId;

	/**
	 * 问答工作室名称
	 */
	@ApiModelProperty("问答工作室名称")
	private String workName;

	/**
	 * 患者云信账户
	 */
	@ApiModelProperty("患者云信账户")
	private String patientAccid;

	/**
	 * 医生云信账户
	 */
	@ApiModelProperty("医生云信账户")
	private String doctorAccid;

	/**
	 * 患者云信密码
	 */
	@ApiModelProperty("患者云信密码")
	private String patientPwd;

	/**
	 * 患者云信密码
	 */
	@ApiModelProperty("年龄")
	private String patientAge;

	/**
	 * 聊天开始时间
	 */
	@ApiModelProperty("聊天开始时间")
	private Date startTime;

	/**
	 * 聊天结束时间
	 */
	@ApiModelProperty("聊天结束时间")
	private Date endTime;

	@ApiModelProperty("聊天最大次数")
	private int chatMaxNum;

	@ApiModelProperty("订单来源(找医生，自诊，快速问诊)")
	@JsonSerialize(converter = InquiryOrderSourceEnum.Covert.class)
	private String orderSource;

	@ApiModelProperty("翻译值:订单来源(找医生，自诊，快速问诊)")
	private String orderSourceName;

	@ApiModelProperty("附件")
	private String attach;

	@ApiModelProperty("医生职称")
	@JsonSerialize(converter = DoctorJobTitle.Covert.class)
	private String doctCategory;

	@ApiModelProperty("医生医院")
	private String hosName;

	@ApiModelProperty("医生医院等级")
	@JsonSerialize(converter = HospitalLevelEnum.Covert.class)
	private String hosLevel;

	/*----------患者健康档案----------*/
	@ApiModelProperty("肝功能是否正常")
	private String liverNor;

	@ApiModelProperty("肝功能是否正常值 key=‘FlagEnum’")
	private String liverNorName;

	@ApiModelProperty("肾功能是否正常")
	private String kidneyNor;

	@ApiModelProperty("肾功能是否正常值 key=‘FlagEnum’")
	private String kidneyNorName;

	@ApiModelProperty("是否备孕")
	private String pregnancyNor;

	@ApiModelProperty("是否备孕值 key=‘FlagEnum’")
	private String pregnancyNorName;

	@ApiModelProperty("遗传病史")
	private String geneticHistory;

	@ApiModelProperty("家族病史")
	private String familyHistory;

	@ApiModelProperty("既往病例")
	private String pastCases;

	@ApiModelProperty("过敏史")
	private String allergyHistory;

	@ApiModelProperty("聊天内容")
	private String cdsBody;

	@ApiModelProperty("可能的疾病")
	private String possDisease;

	@ApiModelProperty("诊断时间")
	private String summaryTime;

	@ApiModelProperty("如果是电话预约时间")
	private Date appointTime;

	@ApiModelProperty("订单价格")
	private BigDecimal paymentPrice;

	@ApiModelProperty("问诊人电话")
	private String patientPhoneNo;

	@ApiModelProperty(notes = "支付来源 (01-小程序 02-公众号)")
	@JsonSerialize(converter = PlaformSourceEnum.Covert.class)
	private String paySource;

}
